export const state = () => ({
  userInfo: {}
});

export const mutations = {
  setUserInfo(state, data) {
    state.userInfo = data;
  }
};

export const actions = {
  login(store, data) {
    // actions 里面可以封装异步函数
    // 搞定请求以后直接可以在这里调用 mutations 改数据
    // 可以接受两个参数, 第一个是当前的 store 仓库实例, 第二个是调用时的传入数据数据
    return this.$axios({
      method: "post",
      url: "/accounts/login",
      data
    }).then(res => {
      console.log(res.data);
      // 在这里不用传数据出去可以直接调用当前的 store.commit 触发mutations 就可以了
      store.commit("setUserInfo", res.data);

      return res;
    });
    // 外面的.then如果希望获取数据
    // 在这个 .then 里面return数据
  },
  register(store, data) {
    return this.$axios({
      method: "post",
      url: "/accounts/register",
      data
    }).then(res => {
      console.log(res.data);
      // 注册成功
      store.commit("setUserInfo", res.data);
      return res;
    });
  }
};
